mkdir -p ../../../install/bin
mkdir -p ../../../install/etc
mkdir -p ../../../install/init.d
- cp -a $(INSTALL) ../../../install/bin
- cp -a $(ETC) ../../../install/etc
+ install --mode=555 $(INSTALL) ../../../install/bin
+ install --mode=444 $(ETC) ../../../install/etc
#chmod 755 $(INSTALL)
- cp -a $(INITD) ../../../install/init.d
+ install --mode=555 $(INITD) ../../../install/init.d
clean:
dist: all
mkdir -p ../../../../install/lib/python
for i in `find . -name 'Xc.so'` ; do \
- cp $$i ../../../../install/lib/python/`basename $$i` ; \
+ install --mode=755 $$i ../../../../install/lib/python/`basename $$i` ; \
done
python -c 'import py_compile, sys; py_compile.compile("XenoUtil.py")'
- cp XenoUtil.py* ../../../../install/lib/python
+ install --mode=444 XenoUtil.py ../../../../install/lib/python
+ install --mode=644 XenoUtil.pyc ../../../../install/lib/python
clean:
rm -rf build *.pyc *.pyo *.o *.a *~
#include <xeno/sched.h>
#include <asm-i386/ptrace.h>
#include <xeno/keyhandler.h>
+#include <asm/apic.h>
#include <asm/pdb.h>
#include <xeno/list.h>
static int remote_debug;
-int pdb_foobar = 0x123456; /* testing */
-char *pdb_foobaz = "cambridge"; /* testing */
-
#define PDB_BUFMAX 1024
static char pdb_in_buffer[PDB_BUFMAX];
static char pdb_out_buffer[PDB_BUFMAX];
* Return 1 if pdb is not interested in the exception; it should
* be propagated to the guest os.
*/
-#define DEBUG_EXCEPTION 1
-#define BREAKPT_EXCEPTION 3
-#define KEYPRESS_EXCEPTION 136
+
+#define DEBUG_EXCEPTION 0x01
+#define BREAKPT_EXCEPTION 0x03
+#define KEYPRESS_EXCEPTION 0x88
+
int pdb_handle_exception(int exceptionVector,
struct pt_regs *xen_regs)
{
int signal = 0;
+ int watchdog_save;
/*
* If PDB didn't set the breakpoint, is not single stepping, and the user
xen_regs->eip--;
}
+ watchdog_save = watchdog_on;
+ watchdog_on = 0;
+
/* Generate a signal for GDB. */
switch ( exceptionVector )
{
case BREAKPT_EXCEPTION:
signal = 5; break; /* SIGTRAP */
default:
- printk("can't generate signal for unknown exception vector %d\n",
+ printk("pdb: can't generate signal for unknown exception vector %d\n",
exceptionVector);
break;
}
}
while ( pdb_process_command(pdb_in_buffer, xen_regs) == 0 );
+ watchdog_on = watchdog_save;
+
return 0;
}
return;
}
- printk("Initializing pervasive debugger (PDB) [%s] port %d, high %d\n",
- opt_pdb, pdb_com_port, pdb_high_bit);
+ printk("Initializing pervasive debugger (PDB) on serial port %d %s\n",
+ pdb_com_port, pdb_high_bit ? "(high bit enabled)" : "");
/* ack any spurrious gdb packets */
pdb_put_char ('+');